﻿Public Class FormReportes

    Private p_Tipo As String
    Public Property tipo_Reporte() As String
        Get
            Return p_Tipo
        End Get
        Set(value As String)
            p_Tipo = value
        End Set
    End Property

    Private p_MontoLetras As String
    Public Property MontoLetras() As String
        Get
            Return p_MontoLetras
        End Get
        Set(value As String)
            p_MontoLetras = value
        End Set
    End Property

    Private p_Datos As DataTable
    Public Property datos_Reporte() As DataTable
        Get
            Return p_Datos
        End Get
        Set(value As DataTable)
            p_Datos = value
        End Set
    End Property

    Private Sub FormReportes_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

        If tipo_Reporte = "VENTAS" Then
            Reporte_Ventas()
        ElseIf tipo_Reporte = "FACTURAS" Then
            Reporte_Venta_Factura(MontoLetras)
        ElseIf tipo_Reporte = "COBROS" Then
            Reporte_Cobros()
        ElseIf tipo_Reporte = "ORDENES" Then
            Reporte_Ordenes()
        ElseIf tipo_Reporte = "PEDIDOS" Then
            Reporte_Pedidos()
        ElseIf tipo_Reporte = "PEDIDO" Then
            Reporte_Pedido()
        ElseIf tipo_Reporte = "IMPRIMIRORDEN" Then
            Reporte_ImprimirOrden()
        ElseIf tipo_Reporte = "MOVPRODUCTOS" Then
            Reporte_MovProductos()
        ElseIf tipo_Reporte = "PRODUCTOSSTOCK" Then
            Reporte_ProductosStock()
        ElseIf tipo_Reporte = "REMISION" Then
            Reporte_Remision()
        ElseIf tipo_Reporte = "MATERIALESSTOCK" Then
            Reporte_MaterialesStock()
        ElseIf tipo_Reporte = "MOVMATERIALES" Then
            Reporte_MovMateriales()
        ElseIf tipo_Reporte = "FACTURASVENCIDAS" Then
            Reporte_FacturasPendientes()
        ElseIf tipo_Reporte = "COMPRAS" Then
            Reporte_Compras()
        ElseIf tipo_Reporte = "PAGOS" Then
            Reporte_Pagos()
        ElseIf tipo_Reporte = "COMPRASVENCIDAS" Then
            Reporte_ComprasVencidas()
        ElseIf tipo_Reporte = "VENTASMES" Then
            Reporte_VentasMes()
        ElseIf tipo_Reporte = "COMPRASMES" Then
            Reporte_ComprasMes()
        ElseIf tipo_Reporte = "IMPRIMIRRECIBO" Then
            Reporte_ImprimirRecibo()
        ElseIf tipo_Reporte = "MATERIALESDEPOSITO" Then
            Reporte_MaterialesDeposito()
        ElseIf tipo_Reporte = "PRODUCTOSDEPOSITO" Then
            Reporte_ProductosDeposito()
        End If

    End Sub

    Public Sub Reporte_ProductosDeposito()
        Try

            Dim reporte As New rptProductosDeposito
            Dim ds As New DataSet

            datos_Reporte.TableName = "ProductosDeposito"

            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)

            CrystalReportViewer.ReportSource = reporte

            reporte.SetParameterValue("usuarioImpresion", oiml.Usuario)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub
    Public Sub Reporte_MaterialesDeposito()
        Try

            Dim reporte As New rptMaterialesDeposito
            Dim ds As New DataSet

            datos_Reporte.TableName = "MaterialesDeposito"

            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)

            CrystalReportViewer.ReportSource = reporte

            reporte.SetParameterValue("usuarioImpresion", oiml.Usuario)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub
    Public Sub Reporte_ImprimirRecibo()
        Try

            Dim reporte As New rptReciboCobro
            Dim ds As New DataSet

            datos_Reporte.TableName = "ReciboImprimir"

            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)

            CrystalReportViewer.ReportSource = reporte

            reporte.SetParameterValue("usuarioImpresion", oiml.Usuario)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub


    Public Sub Reporte_ComprasMes()
        Try

            Dim reporte As New rptComprasMes
            Dim ds As New DataSet

            'Se deja el mismo nombre por la misma estructura del CR
            datos_Reporte.TableName = "VentasMes"

            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)

            CrystalReportViewer.ReportSource = reporte

            'reporte.SetParameterValue("usuarioImpresion", oiml.Usuario)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Public Sub Reporte_VentasMes()
        Try

            Dim reporte As New rptVentasMes
            Dim ds As New DataSet

            datos_Reporte.TableName = "VentasMes"

            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)

            CrystalReportViewer.ReportSource = reporte

            'reporte.SetParameterValue("usuarioImpresion", oiml.Usuario)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Public Sub Reporte_ComprasVencidas()
        Try

            Dim reporte As New rptComprasVencidas
            Dim ds As New DataSet

            datos_Reporte.TableName = "ComprasVencidas"

            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)

            CrystalReportViewer.ReportSource = reporte

            reporte.SetParameterValue("usuarioImpresion", oiml.Usuario)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Public Sub Reporte_Pagos()
        Try

            Dim reporte As New rptPagos
            Dim ds As New DataSet

            datos_Reporte.TableName = "Pagos"

            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)

            CrystalReportViewer.ReportSource = reporte

            reporte.SetParameterValue("usuarioImpresion", oiml.Usuario)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Public Sub Reporte_Compras()
        Try

            Dim reporte As New rptCompras
            Dim ds As New DataSet

            datos_Reporte.TableName = "Compras"

            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)

            CrystalReportViewer.ReportSource = reporte

            reporte.SetParameterValue("usuarioImpresion", oiml.Usuario)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Public Sub Reporte_FacturasPendientes()
        Try

            Dim reporte As New rptFacturasVencidas
            Dim ds As New DataSet

            datos_Reporte.TableName = "FacturasVencidas"

            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)

            CrystalReportViewer.ReportSource = reporte

            reporte.SetParameterValue("usuarioImpresion", oiml.Usuario)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Public Sub Reporte_MovMateriales()
        Try

            Dim reporte As New rptMovMateriales
            Dim ds As New DataSet

            datos_Reporte.TableName = "MovMateriales"

            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)

            CrystalReportViewer.ReportSource = reporte

            reporte.SetParameterValue("usuarioImpresion", oiml.Usuario)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Public Sub Reporte_MaterialesStock()
        Try

            Dim reporte As New rptMaterialesStock
            Dim ds As New DataSet

            datos_Reporte.TableName = "Materiales"

            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)

            CrystalReportViewer.ReportSource = reporte

            reporte.SetParameterValue("usuarioImpresion", oiml.Usuario)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Public Sub Reporte_ImprimirOrden()
        Try

            Dim reporte As New rptImprimirOrden
            Dim ds As New DataSet

            datos_Reporte.TableName = "OrdenesCompra"

            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)

            CrystalReportViewer.ReportSource = reporte

            reporte.SetParameterValue("usuarioImpresion", oiml.Usuario)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Public Sub Reporte_Remision()
        Try

            Dim reporte As New rptRemision
            Dim ds As New DataSet

            datos_Reporte.TableName = "Ventas"

            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)

            CrystalReportViewer.ReportSource = reporte

            reporte.SetParameterValue("usuarioImpresion", oiml.Usuario)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Public Sub Reporte_ProductosStock()
        Try

            Dim reporte As New rptProductosStock
            Dim ds As New DataSet

            datos_Reporte.TableName = "Productos"

            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)

            CrystalReportViewer.ReportSource = reporte

            reporte.SetParameterValue("usuarioImpresion", oiml.Usuario)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Public Sub Reporte_MovProductos()
        Try

            Dim reporte As New rptMovProductos
            Dim ds As New DataSet

            datos_Reporte.TableName = "MovProductos"

            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)

            CrystalReportViewer.ReportSource = reporte

            reporte.SetParameterValue("usuarioImpresion", oiml.Usuario)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Public Sub Reporte_Pedidos()
        Try

            Dim reporte As New rptNotasPedido
            Dim ds As New DataSet

            datos_Reporte.TableName = "Pedidos"

            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)

            CrystalReportViewer.ReportSource = reporte

            reporte.SetParameterValue("usuarioImpresion", oiml.Usuario)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Public Sub Reporte_Pedido()
        Try

            Dim reporte As New rptPedido
            Dim ds As New DataSet

            datos_Reporte.TableName = "Pedidos"

            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)

            CrystalReportViewer.ReportSource = reporte

            reporte.SetParameterValue("usuarioImpresion", oiml.Usuario)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Public Sub Reporte_Ordenes()
        Try

            Dim reporte As New rptOrdenesCompra
            Dim ds As New DataSet

            datos_Reporte.TableName = "OrdenesCompra"

            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)
            CrystalReportViewer.ReportSource = reporte

            reporte.SetParameterValue("usuario", oiml.Usuario)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Public Sub Reporte_Ventas()
        Try

            Dim reporte As New rptVentas
            Dim ds As New DataSet

            datos_Reporte.TableName = "Ventas"
            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)
            CrystalReportViewer.ReportSource = reporte
            reporte.SetParameterValue("usuario", oiml.Usuario)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Public Sub Reporte_Cobros()
        Try

            Dim reporte As New rptCobros
            Dim ds As New DataSet

            datos_Reporte.TableName = "Cobros"
            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)
            CrystalReportViewer.ReportSource = reporte
            reporte.SetParameterValue("usuario", oiml.Usuario)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

    Public Sub Reporte_Venta_Factura(montoLetras As String)
        Try

            Dim reporte As New rptVenta
            Dim ds As New DataSet

            datos_Reporte.TableName = "Ventas"
            ds.Tables.Add(datos_Reporte)
            reporte.SetDataSource(ds)
            CrystalReportViewer.ReportSource = reporte
            reporte.SetParameterValue("usuario", oiml.Usuario)
            reporte.SetParameterValue("numLetras", montoLetras)

        Catch ex As Exception
            MessageBox.Show("Error: " & ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

End Class